Intra prediction exploits spatial correlation within a picture or within a picture region. In order to improve coding efficiency, the High-Efficiency Video Coding (HEVC) standard being developed under the Joint Collaborative Team on Video Coding (JCT-VC) group of video coding experts from ITU-T Study Group exploits block-based spatial prediction extensively. In HEVC, multiple Intra prediction modes are used to exploit spatial features and the number of Intra prediction modes depends on the block size of a Prediction Unit (PU). In HEVC Test Model Version 5.0 (HM-5.0), the size of the PU for Intra coding can be 64×64, 32×32, 16×16, 8×8, or 4×4. A total of 18 Intra prediction modes (mode 0 to mode 17) are used for 4×4 PU while 35 Intra modes (mode 0 to mode 34) are used for 8×8, 16×16, 32×32 and 64×64 PU as shown in FIG. 1. The 35 Intra prediction modes include 33 directional prediction modes, one DC mode and one Planar mode as shown in FIG. 1. Each Intra prediction mode, except for Intra prediction modes 0 and 3, has an associated angle as shown in FIG. 2. In HM-5.0, the Intra mode coding first maps the Intra mode index (i.e., intraPredMode) to intraPredOrder as shown in Table 1. Then intraPredOrder is mapped to the angle parameter (i.e., intraPredAngle) as shown in Table 2.
TABLE 1intraPredMode0123456789intraPredOrder————1513172129intraPredMode10111213141516171819intraPredOrder33371115192327312intraPredMode20212223242526272829intraPredOrder46810121416182022intraPredMode3031323334intraPredOrder2426283032
TABLE 2intraPredOrder0123456789intraPred Angle—−32−26−21−17−13−9−5−2—intraPredOrder10111213141516171819intraPredAngle2591317212632−26−21intraPredOrder20212223242526272829intraPredAngle−17−13−9−5−2—25913intraPredOrder30313233intraPredAngle17212632
An alternative to the Intra mode index of FIG. 1 is to label each mode with its respective physical directions. FIG. 3 illustrates an example of Intra mode labeling, where “h” refers to the horizontal direction and “v” refers to the vertical direction.
In HM-5.0, the Intra mode coding of luma component comprises two most probable modes (MPMs) and the remaining modes. The two most probable modes are derived for each PU from the Intra mode of the above PU and the Intra mode of the left PU. If intraPredMode of the current PU is equal to either of the most probable modes, a flag prev_intra_pred_flag is set to 1 to indicate that intraPredMode of the current PU matches one of the most probable modes and the index of the matched most probable mode is transmitted following the flag. If intraPredMode of the current PU doesn't match any of the most probable modes, prev_intra_pred_flag is set to 0 to indicate this case and rem_intra_luma_pred_mode is transmitted following the flag to signal the index of the remaining mode matching intraPredMode of the current PU. The binarization of rem_intra_luma_pred_mode in CABAC is shown in Table 3 for 4×4 PU and in Table 4 for 8×8, 16×16, 32×32, and 64×64 PUs.
TABLE 3Value ofrem_intra_luma_ pred_modeBin stringless than 16Fixed Length, 0000~1111
TABLE 4Value ofrem_intra_luma_ pred_modeBin stringless than 31Fixed Length, 00000~111103111111032111111
For 8×8, 16×16, 32×32 and 64×64 PU, there are 33 remaining modes, i.e., 33 possible values of rem_intra_luma_pred_mode as shown in Table 4. This requires one additional bit for rem_intra_luma_pred_mode equal to 32 or 33 compared to other remaining modes. This causes the code length of rem_intra_luma_pred_mode to be non-uniform and additional operations may be necessary for the corresponding coding process. It is desirable to be able to use fixed length codes for all remaining Intra prediction modes.